آموزش ساختار داده‌ها و الگوریتم‌ها در جاوا + ۱۵۰ مسئله لیت‌کد [ویدئویی] - آخرین آپدیت

دانلود Data Structures & Algorithms in Java + 150 Leetcode Problems [Video]

نکته: ممکن هست محتوای این صفحه بروز نباشد ولی دانلود دوره آخرین آپدیت می باشد.
نمونه ویدیوها:
توضیحات دوره: این دوره جامع شما را در مسیر تسلط بر ساختار داده‌ها و الگوریتم‌ها (DSA) در زبان جاوا، همزمان با حل ۱۵۰ مورد از برترین مسائل Leetcode همراهی می‌کند. این دوره که برای مهندسان نرم‌افزار آینده و هر کسی که برای مصاحبه‌های برنامه‌نویسی آماده می‌شود طراحی شده است، راهکارهای عملی و استراتژی‌های حل مسئله‌ای را ارائه می‌دهد که توسط شرکت‌های بزرگ تکنولوژی استفاده می‌شوند. سفر ما با درک الگوریتم‌های بنیادی مانند مرتب‌سازی و جستجو آغاز می‌شود و سپس به مباحث پیچیده‌تری مانند برنامه‌نویسی پویا (Dynamic Programming)، الگوریتم‌های حریصانه و تئوری گراف پیش می‌رود. شما درک عمیقی از ساختارهای داده‌ای مانند آرایه‌ها، لیست‌های پیوندی، درخت‌ها و هیپ‌ها به دست آورده و نحوه پیاده‌سازی آن‌ها را در جاوا خواهید آموخت. طراحی این دوره به گونه‌ای است که شما نه تنها مسائل کدنویسی را به صورت بهینه حل کنید، بلکه مفاهیم زیربنایی را نیز درک نمایید. با نمایش‌های زنده کدنویسی و تحلیل گام‌به‌گام مسائل، یاد می‌گیرید که چگونه راهکارهای خود را بهینه کنید، کدی تمیز بنویسید و چالش‌ها را به راحتی پشت سر بگذارید. در پایان، شما کاملاً برای مصاحبه‌های کدنویسی دنیای واقعی آماده خواهید بود. حل ۱۵۰ مسئله کدنویسی با جاوا برای مصاحبه‌های فنی درک ساختارهای داده ضروری مانند آرایه‌ها، درخت‌ها و هیپ‌ها توسعه راهکارهای برنامه‌نویسی پویا و الگوریتم‌های حریصانه یادگیری استراتژی‌های موثر برای بهینه‌سازی راهکارهای کدنویسی پیاده‌سازی الگوریتم‌های پیچیده مانند پیمایش گراف و بازگشت (Backtracking) تسلط بر حل مسائل واقعی از طریق مثال‌های زنده کدنویسی این دوره برای توسعه‌دهندگان مشتاق، مهندسان نرم‌افزار و هر کسی که به دنبال ارتقای مهارت‌های کدنویسی خود برای مصاحبه‌های شغلی است، طراحی شده است. این دوره برای یادگیرندگانی که دانش پایه برنامه‌نویسی (مانند حلقه‌ها و آرایه‌ها) را دارند اما می‌خواهند درک خود را از ساختار داده‌ها و الگوریتم‌ها عمیق‌تر کنند، ایده‌آل است. چه در حال آماده شدن برای مصاحبه‌های کدنویسی باشید و چه صرفاً بخواهید مهارت‌های حل مسئله خود را افزایش دهید، این دوره ساختار و تمرینات عملی لازم برای موفقیت در بازار رقابتی کار را فراهم می‌کند. پوشش جامع ساختار داده‌ها و الگوریتم‌ها، ضروری برای مصاحبه‌های کدنویسی * جلسات کدنویسی زنده با حل مسئله در لحظه برای نمایش مفاهیم کلیدی * تحلیل عمیق و بررسی گام‌به‌گام مسائل لیت‌کد که معمولاً توسط شرکت‌های برتر تکنولوژی پرسیده می‌شوند

سرفصل ها و درس ها

مقدمه دوره Course Introduction

  • چگونه لیت‌کد را شروع کنیم؟ How to get started with Leetcode?

  • چگونه مهارت‌های حل مسئله را بهبود ببخشیم؟ How to improve problem-solving skills?

  • چگونه در مصاحبه سریع کد بزنیم! How To Code Fast in an interview!

  • چگونه در مصاحبه DSA موفق شویم؟ How to ace your DSA Interview?

تحلیل پیچیدگی زمانی و مکانی Time & Space Complexity Analysis

  • مقدمه‌ای بر پیچیدگی زمانی و مکانی Introduction to Time & Space Complexity

  • نماد Big O چیست؟ What is Big O Notation?

  • مثال ۱: محاسبه پیچیدگی زمانی Calculating Time Complexity Example 1

  • بررسی قابل قبول بودن نماد Big O در مصاحبه‌ها Checking If Big O Notation Is Acceptable in Interviews

  • مثال ۲: محاسبه پیچیدگی زمانی Calculating Time Complexity Example 2

  • باورهای غلط درباره پیچیدگی زمانی Myth About Time Complexity

  • محاسبه پیچیدگی زمانی در حالت‌های بازگشتی Calculating Time Complexity of Recursive Cases

  • مثال ۲: پیچیدگی زمانی بازگشتی Recursive Time Complexity Example 2

  • دموی زنده پیچیدگی زمانی Time Complexity Live Demonstration

  • مقدمه‌ای بر پیچیدگی مکانی Introduction To Space Complexity

  • محاسبه پیچیدگی مکانی Calculating Space Complexity

  • مثال ۱: پیچیدگی مکانی بازگشتی Recursive Space Complexity Example 1

  • مثال ۲: پیچیدگی مکانی بازگشتی Recursive Space Complexity Example 2

تئوری آرایه‌ها + مسائل کاربردی آرایه از لیت‌کد Arrays Theory + Array Practice Problems from Leetcode

  • آرایه‌ها چه هستند و چرا اینقدر سریع‌اند! What are arrays and why are they so fast!

  • معایب استفاده از آرایه‌ها Drawbacks of using Arrays

  • آرایه‌های تغییر اندازه پذیر چگونه کار می‌کنند؟ How do resizable arrays work?

  • متدهای مهم آرایه در جاوا - بخش ۱ Important Array Methods In Java Part 1

  • متدهای مهم آرایه در جاوا - بخش ۲ Important Array Methods In Java Part 2

  • متدهای مهم آرایه در جاوا - بخش ۳ Important Array Methods In Java Part 3

  • مسئله کاربردی ۱: بیشترین مجموع زیرآرایه Practice Problem 1 - Maximum Sum Subarray

  • مسئله کاربردی ۲: بهترین زمان برای خرید و فروش سهام Practice Problem 2 - Best Time To Buy And Sell A Stock

  • مسئله کاربردی ۳: بیشترین حاصل‌ضرب زیرآرایه Practice Problem 3 - Maximum Product Subarray

  • مسئله کاربردی ۴: حاصل‌ضرب آرایه به جز خود عنصر Practice Problem 4 - Product Of Array Except Self

  • مسئله کاربردی ۵: چرخش آرایه Practice Problem 5 - Rotate Array

  • مسئله کاربردی ۶: بیشترین تعداد یک‌های متوالی Practice Problem 6 - Max Consecutive Ones

  • مسئله کاربردی ۷: سودوکوی معتبر Practice Problem 7 - Valid Sudoku

  • مسئله کاربردی ۸: K نقطه نزدیک به مبدأ Practice Problem 8 - K Closest Points To Origin

  • مسئله کاربردی ۹: کدگذاری و رمزگشایی رشته‌ها Practice Problem 9 - Encode and Decode Strings

تئوری مرتب‌سازی + مسائل کاربردی مرتب‌سازی Sorting Theory + Sorting Practice Problems

  • چرا مرتب‌سازی مهم است؟ Why is sorting important?

  • مقدمه‌ای بر مرتب‌سازی Introduction To Sorting

  • تئوری مرتب‌سازی حبابی (Bubble Sort) Bubble Sort Theory

  • پیاده‌سازی مرتب‌سازی حبابی Bubble Sort Implementation

  • تئوری مرتب‌سازی انتخابی (Selection Sort) Selection Sort Theory

  • پیاده‌سازی مرتب‌سازی انتخابی Selection Sort Implementation

  • تئوری مرتب‌سازی درجادویی (Insertion Sort) Insertion Sort Theory

  • مرتب‌سازی ادغامی بخش ۱: نحوه ادغام دو آرایه مرتب Merge Sort Part 1 - How to merge two sorted arrays

  • مرتب‌سازی ادغامی بخش ۲: پیاده‌سازی ادغام دو آرایه مرتب Merge Sort Part 2 - Merging Two Sorted Arrays Implementation

  • مرتب‌سازی ادغامی بخش ۳: تئوری Merge Sort Part 3 - Theory

  • پیاده‌سازی مرتب‌سازی ادغامی Merge Sort Implementation

  • مرتب‌سازی سریع بخش ۱: الگوریتم افراز (Partitioning) Quick Sort Part 1 - Partitioning Algorithm

  • مرتب‌سازی سریع بخش ۲: درک نحوه عملکرد Quick Sort Quick Sort Part 2 - Understanding how quick sort works

  • مرتب‌سازی شمارشی بخش ۱: تئوری Counting Sort Part 1 - Theory

  • پیاده‌سازی مرتب‌سازی شمارشی Counting Sort - Implementation

  • مرتب‌سازی شمارشی چگونه پایدار (Stable) می‌شود؟ How is counting sort made stable?

  • تئوری مرتب‌سازی رادیکسی (Radix Sort) Radix Sort - Theory

  • پیاده‌سازی مرتب‌سازی رادیکسی Radix Sort - Implementation

  • لیت‌کد ۲۸۳: جابجایی صفرها - جاوا Leetcode #283 - Move Zeroes - Java

  • لیت‌کد ۷۵: مرتب‌سازی رنگ‌ها - جاوا Leetcode #75 - Sort Colors - Java

  • لیت‌کد ۱۶۹: عنصر اکثریت - جاوا Leetcode #169 - Majority Element - Java

لیست‌های پیوندی Linked Lists

  • معایب آرایه‌ها Drawback Of Arrays

  • لیست پیوندی چیست What Is Linked List

  • پیاده‌سازی لیست‌های پیوندی Implementing Linked Lists

  • پیمایش در لیست‌های پیوندی Iterating Over Linked Lists

  • درج در لیست پیوندی Inserting In Linked List

  • حذف از ابتدای لیست پیوندی Deleting From Front In Linked List

  • لیست پیوندی دوطرفه چیست What Is Doubly Linked List

  • کلاس LinkedList در جاوا Linked List Class In Java

  • ایجاد لیست‌های پیوندی Creating Linked Lists

  • استفاده از Iterators برای پیمایش Using Iterators To Iterate

  • متد Contains Contains

  • پیمایش در ترتیب معکوس Iterating In Reverse Order

  • متدهای افزودن در لیست پیوندی Add Methods In Linked List

  • متدهای حذف در لیست‌های پیوندی Removal Methods In Linked Lists

  • مسئله کاربردی ۱: تقاطع دو لیست پیوندی Practice Problem 1 - Intersection Of Two Linked Lists

  • مسئله کاربردی ۲: ادغام دو لیست مرتب Practice Problem 2 - Merge Two Sorted Lists

  • مسئله کاربردی ۳: چرخه در لیست پیوندی Practice Problem 3 - Linked List Cycle

  • مسئله کاربردی ۴: معکوس کردن لیست پیوندی Practice Problem 4 - Reverse Linked List

  • مسئله کاربردی ۵: پالیندروم بودن لیست پیوندی Practice Problem 5 - Palindrome Linked List

  • مسئله کاربردی ۶: چرخه در لیست پیوندی ۲ Practice Problem 6 - Linked List Cycle II

  • مسئله کاربردی ۷: یافتن وسط لیست پیوندی Practice Problem 7 - Find Middle Of The Linked List

  • مسئله کاربردی ۸: حذف N-امین گره از انتهای لیست Practice Problem 8 - Remove Nth Node From End Of List

  • مسئله کاربردی ۹: جمع دو عدد Practice Problem 9 - Add Two Numbers

  • مسئله کاربردی ۱۰: بازآرایی لیست Practice Problem 10 - Reorder List

تئوری جدول هش + مسائل کاربردی لیت‌کد Hash Table Theory + Leetcode Practice Problems

  • جدول هش (Hash Table) چیست What Is Hash Table

  • جدول هش چگونه کار می‌کند؟ How does a hash table work?

  • حل برخورد (Collision) در جدول هش Hash Table Collision Resolution

  • انواع جدول هش Types Of Hash Table

  • کاربردهای جدول هش Hash Table Usage

  • مسئله کاربردی ۱: وجود تکرار Practice Problem 1 - Contains Duplicate

  • مسئله کاربردی ۲: مجموع دو عدد (Two Sum) Practice Problem 2 - Two Sum

  • مسئله کاربردی ۳: آناگرام معتبر Practice Problem 3 - Valid Anagram

  • مسئله کاربردی ۴: گروه‌بندی آناگرام‌ها Practice Problem 4 - Group Anagrams

  • مسئله کاربردی ۵: طولانی‌ترین دنباله متوالی Practice Problem 5 - Longest Consecutive Sequence

  • مسئله کاربردی ۶: مجموع سه عدد (Three Sum) Practice Problem 6 - Three Sum

  • مسئله کاربردی ۷: اولین عدد مثبت گم شده Practice Problem 7 - First Missing Positive

پشته‌ها (Stacks) Stacks

  • مقدمه‌ای بر پشته‌ها (Stacks) Introduction to Stacks

  • استفاده از پشته در جاوا Using Stacks In Java

  • مسئله کاربردی ۱: پرانتزهای معتبر Practice Problem 1 - Valid Parenthesis

  • مسئله کاربردی ۲: پشته کمینه (Min Stack) Practice Problem 2 - Min Stack

  • مسئله کاربردی ۳: عنصر بزرگتر بعدی ۲ Practice Problem 3 - Next Greater Element II

  • مسئله کاربردی ۴: ارزیابی نمادگذاری معکوس پولیش Practice Problem 4 - Evaluate Reverse Polish Notation

صف‌ها (Queue) Queue

  • مقدمه‌ای بر صف (Queue) Introduction to Queue

  • صف چگونه پیاده‌سازی می‌شود How Is Queue Implemented

  • استفاده از صف در جاوا Using Queue In Java

الگوی آرایه ۱: متد پنجره لغزان + مسائل کاربردی Array Pattern #1 - Sliding Window Method + Practice Problems

  • متد پنجره لغزان چیست؟ - بخش ۱ What is Sliding Window Method? - Part 1

  • متد پنجره لغزان چیست؟ - بخش ۲ What is Sliding Window Method? - Part 2

  • چگونه مسائل پنجره لغزان را سریع پیاده‌سازی کنیم؟ How to Implement Sliding Window Method Problems Quickly?

  • مسئله کاربردی ۱: طولانی‌ترین زیررشته بدون کاراکتر تکراری Practice Problem 1 - Longest Substring Without Repeating Characters

  • مسئله کاربردی ۲: جایگزینی طولانی‌ترین کاراکتر تکراری Practice Problem 2 - Longest Repeating Character Replacement

  • مسئله کاربردی ۳: بیشترین مقدار در پنجره لغزان - جاوا Practice Problem 3 - Sliding Window Maximum - Java

الگوی آرایه ۲: متد دو اشاره‌گر + مسائل کاربردی Array Pattern #2 - Two Pointer Method + Practice Problems

  • مسئله کاربردی ۱: ظرف با بیشترین مقدار آب - جاوا Practice Problem 1 - Container With Most Water - Java

  • مسئله کاربردی ۲: به دام انداختن آب باران - جاوا Practice Problem 2 - Trapping Rain Water - Java

  • مسئله کاربردی ۳: مجموع دو عدد ۲ (آرایه ورودی مرتب است) - جاوا Practice Problem 3 - Two Sum II - Input Array Is Sorted - Java

  • مسئله کاربردی ۴: پالیندروم معتبر - جاوا Practice Problem 4 - Valid Palindrome - Java

الگوی آرایه ۳: ریاضیات و هندسه Array Pattern #3 - Math & Geometry

  • مسئله کاربردی ۱: صفر کردن ماتریس Practice Problem 1 - Set Matrix Zero

  • مسئله کاربردی ۲: چرخش تصویر Practice Problem 2 - Rotate Image

  • مسئله کاربردی ۳: ماتریس مارپیچی Practice Problem 3 - Spiral Matrix

  • مسئله کاربردی ۴: محاسبه توان (X, N) Practice Problem 4 - Pow (X, N)

الگوی آرایه ۴: بازه‌ها (Intervals) Array Pattern #4 - Intervals

  • مسئله کاربردی ۱: درج بازه Practice Problem 1 - Insert Interval

  • مسئله کاربردی ۲: جستجو و یافتن موقعیت درج Practice Problem 2 - Search Insert Position

  • مسئله کاربردی ۳: ادغام بازه‌ها Practice Problem 3 - Merge Intervals

  • مسئله کاربردی ۴: اتاق‌های جلسه Practice Problem 4 - Meeting Rooms

  • مسئله کاربردی ۵: بازه‌های غیرمتداخل Practice Problem 5 - Non Overlapping Intervals

تئوری جستجوی دودویی (Binary Search) Binary Search Theory

  • مقدمه‌ای بر جستجوی دودویی Introduction To Binary Search

  • پیاده‌سازی جستجوی دودویی Binary Search Implementation

  • پیچیدگی جستجوی دودویی Binary Search Complexity

الگوی جستجوی دودویی ۱: جستجو در آرایه‌های مرتب شده چرخان Binary Search Pattern #1 - Binary Search Over Rotated Sorted Arrays

  • مسئله کاربردی ۱: یافتن اولین و آخرین موقعیت عنصر در آرایه مرتب Practice Problem 1 - Find First And Last Position Of Element In Sorted Array

  • مسئله کاربردی ۲: یافتن کمترین مقدار در آرایه مرتب چرخان Practice Problem 2 - Find Minimum In A Rotated Sorted Array

  • مسئله کاربردی ۳: جستجو در آرایه مرتب چرخان Practice Problem 3 - Search In A Rotated Sorted Array

الگوی جستجوی دودویی ۲: جستجو در محدوده (Range) Binary Search Pattern #2 - Binary Search Over Range

  • مسئله کاربردی ۱: کوکو و خوردن موزها Practice Problem 1 - Koko Eating Bananas

  • مسئله کاربردی ۲: نیروی مغناطیسی بین دو توپ Practice Problem 2 - Magnetic Force Between Two Balls

بازگشت و پس‌گرد (Recursion and Backtracking) + مسائل کاربردی لیت‌کد Recursion and Backtracking + Leetcode Practice Problems

  • پس‌گرد (Backtracking) چیست و چگونه پیاده می‌شود؟ What is backtracking and how it is implemented?

  • مثال ۱ پس‌گرد با پیاده‌سازی دقیق Backtracking Example 1 With Detailed Implementation

  • لیت‌کد ۷۸: زیرمجموعه‌ها - جاوا Leetcode #78 - Subsets - Java

  • لیت‌کد ۴۶: جایگشت‌ها - جاوا Leetcode #46 - Permutations - Java

  • لیت‌کد ۱۷: ترکیبات حروف شماره تلفن Leetcode #17 - Letter Combinations Of A Phone Number

  • لیت‌کد ۳۹: مجموع ترکیبی - جاوا Leetcode #39 - Combination Sum - Java

  • لیت‌کد ۴۰: مجموع ترکیبی ۲ Leetcode #40 - Combination Sum II

  • لیت‌کد ۹۰: زیرمجموعه‌ها ۲ - جاوا Leetcode #90 - Subsets II - Java

  • لیت‌کد ۵۱: مسئله N-ملکه - جاوا Leetcode #51 - N Queens - Java

  • لیت‌کد ۷۹: جستجوی کلمه Leetcode #79 - Word Search

  • لیت‌کد ۲۱۲: جستجوی کلمه ۲ Leetcode #212 - Word Search II

تئوری و پیاده‌سازی درخت‌های دودویی Binary Trees Theory & Implementation

  • مقدمه‌ای بر درخت‌های دودویی Introduction to Binary Trees

  • اصطلاحات مربوط به درخت‌ها Terms Related To Trees

  • الگوریتم‌های پیمایش درخت Tree Traversal Algorithms

  • پیمایش سطح به سطح (Level Order) Level Order Traversal

  • پیاده‌سازی درخت‌ها با استفاده از رفرنس‌ها Implementing Trees Using References

  • پیاده‌سازی درخت‌ها با استفاده از آرایه‌ها Implementing Trees Using Arrays

مسائل کاربردی درخت‌های دودویی Binary Trees Practice Problems

  • لیت‌کد ۱۰۰: درخت یکسان - جاوا Leetcode #100 - Same Tree - Java

  • لیت‌کد ۵۷۲: زیردرخت از درختی دیگر - جاوا Leetcode #572 - Subtree Of Another Tree - Java

  • لیت‌کد ۱۰۱: درخت متقارن - جاوا Leetcode #101 - Symmetric Tree - Java

  • لیت‌کد ۱۰۴: حداکثر عمق درخت دودویی - جاوا Leetcode #104 - Maximum Depth Of A Binary Tree - Java

  • پیاده‌سازی پیمایش PreOrder در درخت‌های آرایه‌ای PreOrder Traversal Implementation in Trees Using Arrays

  • لیت‌کد ۲۲۶: معکوس کردن درخت دودویی - جاوا Leetcode #226 - Invert Binary Tree - Java

  • لیت‌کد ۵۴۳: قطر درخت دودویی - جاوا Leetcode #543 - Diameter Of A Binary Tree - Java

  • لیت‌کد ۹۴: پیمایش InOrder درخت دودویی - جاوا Leetcode #94 - Binary Tree InOrder Traversal - Java

  • لیت‌کد ۱۰۲: پیمایش سطح به سطح درخت دودویی - جاوا Leetcode #102 - Binary Tree Level Order Traversal - Java

  • لیت‌کد ۱۱۲: مجموع مسیر - جاوا Leetcode #112 - Path Sum - Java

  • لیت‌کد ۱۱۳: مجموع مسیر ۲ - جاوا Leetcode #113 - Path Sum II - Java

  • لیت‌کد ۹۹۳: پسرعموهای درخت دودویی - جاوا Leetcode #993 - Cousins in Binary Tree - Java

  • لیت‌کد ۱۱۶۱: حداکثر مجموع سطح درخت دودویی - جاوا Leetcode #1161 - Maximum Level Sum of Binary Tree - Java

  • لیت‌کد ۱۰۵: ساخت درخت دودویی از پیمایش Preorder و Inorder - جاوا Leetcode #105 - Construct Binary Tree From Preorder and Inorder Traversal - Java

  • لیت‌کد ۱۱۰: درخت دودویی متوازن - جاوا Leetcode #110 - Balanced Binary Tree - Java

  • لیت‌کد ۱۹۹: نمای سمت راست درخت دودویی - جاوا Leetcode #199 - Binary Tree Right Side View - Java

  • لیت‌کد ۱۴۴۸: شمارش گره‌های خوب در درخت دودویی - جاوا Leetcode #1448 - Count Good Nodes In Binary Tree - Java

  • لیت‌کد ۴۰۴: مجموع برگ‌های چپ - جاوا Leetcode #404 - Sum Of Left Leaves - Java

  • لیت‌کد ۱۲۴: حداکثر مجموع مسیر درخت دودویی - جاوا Leetcode #124 - Binary Tree Maximum Path Sum - Java

  • لیت‌کد ۲۰۸: پیاده‌سازی Trie (درخت پیشوند) - جاوا Leetcode #208 - Implement Trie (Prefix Sum Tree) - Java

  • لیت‌کد ۲۱۱: طراحی ساختار داده افزودن و جستجوی کلمه - جاوا Leetcode #211 - Design Add and Search Word Data Structure - Java

  • لیت‌کد ۲۹۷: سریال‌سازی و دسریال‌سازی درخت دودویی - جاوا Leetcode #297 - Serialize and Deserialize Binary Tree - Java

تئوری درخت جستجوی دودویی + مسائل کاربردی لیت‌کد Binary Search Tree Theory + Leetcode Practice Problems

  • مقدمه‌ای بر درخت‌های جستجوی دودویی (BST) Introduction To Binary Search Trees

  • BST متوازن از نظر ارتفاع Height Balanced BST

  • درج گره جدید در درخت جستجوی دودویی Inserting A New Node in Binary Search Tree

  • جانشین و پیش‌رو در پیمایش Inorder Inorder Successor And Predecessor

  • حذف گره در درخت جستجوی دودویی Deleting A Node In Binary Search Tree

  • لیت‌کد ۲۳۰: K-امین کوچک‌ترین عنصر در BST - جاوا Leetcode #230 - Kth Smallest Element In BST - Java

  • لیت‌کد ۹۸: اعتبارسنجی درخت جستجوی دودویی - جاوا Leetcode #98 - Validate Binary Search Tree - Java

  • لیت‌کد ۲۳۵: پایین‌ترین جد مشترک در BST - جاوا Leetcode #235 - Lowest Common Ancestor Of A Binary Search Tree - Java

هیپ‌ها (Heaps) Heaps

  • مقدمه‌ای بر هیپ‌ها (Heaps) Introduction To Heaps

  • پیاده‌سازی هیپ‌ها Implementation Of Heaps

  • درج در هیپ Insertion in Heaps

  • پیاده‌سازی درج در هیپ Heap Insertion Implementation

  • حذف در هیپ Deletion in Heaps

  • الگوریتم Heapify Heapify

  • مسئله کاربردی ۱: K-امین بزرگ‌ترین عنصر در یک آرایه Practice Problem 1 - Kth Largest Element In An Array

  • مسئله کاربردی ۲: یافتن میانه از جریان داده Practice Problem 2 - Find Median from Data Stream

  • مسئله کاربردی ۳: K-امین بزرگ‌ترین عنصر در یک جریان Practice Problem 3 - Kth Largest Element In A Stream

  • لیت‌کد ۱۰۴۶: وزن آخرین سنگ - جاوا Leetcode #1046 - Last Stone Weight - Java

  • لیت‌کد ۲۳: ادغام K لیست مرتب - جاوا Leetcode #23 - Merge K Sorted Lists

  • لیت‌کد ۲۵۳: اتاق‌های جلسه ۲ Leetcode #253 - Meeting Rooms II

  • لیت‌کد ۳۴۷: K عنصر پرتکرار برتر Leetcode #347 - Top K Frequent Elements

تئوری برنامه‌نویسی پویا + مسائل کاربردی DP (یک‌بعدی، دوبعدی و رشته‌ای) Dynamic Programming Theory + DP Practice Problems (1D + 2D + String DP)

  • مقدمه‌ای بر برنامه‌نویسی پویا (Dynamic Programming) Introduction to Dynamic Programming

  • مسئله کاربردی ۱: بالا رفتن از پله‌ها - جاوا Practice Problem 1 - Climbing Stairs - Java

  • مسئله کاربردی ۲: بازی پرش - جاوا Practice Problem 2 - Jump Game - Java

  • مسئله کاربردی ۳: تعویض سکه Practice Problem 3 - Coin Change

  • مسئله کاربردی ۴: مجموع هدف Practice Problem 4 - Target Sum

  • مسئله کاربردی ۵: طولانی‌ترین زیردنباله مشترک Practice Problem 5 - Longest Common Subsequence

  • مسئله کاربردی ۶: سارق خانه Practice Problem 6 - House Robber

  • مسئله کاربردی ۷: طولانی‌ترین زیردنباله صعودی Practice Problem 7 - Longest Increasing Subsequence

  • مسئله کاربردی ۸: مجموع زیرمجموعه برابر Practice Problem 8 - Partition Equal Subset Sum

  • مسئله کاربردی ۱۰: جایگزینی عدد صحیح Practice Problem 10 - Integer Replacement

  • مسئله کاربردی ۱۱: رمزگشایی روش‌ها Practice Problem 11 - Decode Ways

  • مسئله کاربردی ۱۲: سارق خانه ۲ Practice Problem 12 - House Robber II

  • مسئله کاربردی ۱۳: حداقل هزینه بالا رفتن از پله‌ها Practice Problem 13 - Min Cost Climbing Stairs

  • مسئله کاربردی ۱۴: طولانی‌ترین زیررشته پالیندروم Practice Problem 14 - Longest Palindromic Substring

  • مسئله کاربردی ۱۵: شکستن کلمه Practice Problem 15 - Word Break

  • مسئله کاربردی ۱۶: مسیرهای منحصر به فرد Practice Problem 16 - Unique Paths

  • مسئله کاربردی ۱۷: زیررشته‌های پالیندروم Practice Problem 17 - Palindromic Substrings

تکنیک‌های دستکاری بیت‌ها + مسائل کاربردی لیت‌کد Bit Manipulation Techniques + Leetcode Practice Problems

  • مقدمه‌ای بر عملگرهای بیتی Introduction to Bitwise Operators

  • عملگرهای بیتی رایج Common Bitwise Operators

  • لیت‌کد ۱۳۶: عدد تک - جاوا Leetcode #136 - Single Number - Java

  • لیت‌کد ۳۳۸: شمارش بیت‌ها - جاوا Leetcode #338 - Counting Bits - Java

  • لیت‌کد ۲۸۷: یافتن عدد تکراری - جاوا Leetcode #287 - Find the Duplicate Number - Java

  • لیت‌کد ۲۹: تقسیم دو عدد صحیح - جاوا Leetcode #29 - Divide Two Integers - Java

  • لیت‌کد ۲۶۸: عدد گم شده - جاوا Leetcode #268 - Missing Number - Java

  • لیت‌کد ۱۹۱: تعداد بیت‌های ۱ - جاوا Leetcode #191 - Number of 1 Bits - Java

  • لیت‌کد ۳۷۱: مجموع دو عدد صحیح - جاوا Leetcode #371 - Sum Of Two Integers - Java

  • لیت‌کد ۷: معکوس کردن عدد صحیح - جاوا Leetcode #7 - Reverse Integer - Java

ساختار داده مجموعه مجزا (Disjoint Set) - الگوریتم‌های Union Find Disjoint Set Data Structure - Union Find Algorithms

  • مقدمه‌ای بر ساختار داده مجموعه مجزا Introduction to Disjoint Set Data Structure

  • درک ساختار داده مجموعه مجزا Understanding Disjoint Set Data Structure

  • پیاده‌سازی ساختار داده مجموعه مجزا - بخش ۱ Implementing Disjoint Set Data Structure Part 1

  • بهینه‌سازی Union By Rank Union By Rank Optimization

  • پیاده‌سازی Union By Rank Union By Rank Implementation

  • بهینه‌سازی فشرده‌سازی مسیر (Path Compression) Path Compression Optimization

  • پیاده‌سازی بهینه‌سازی فشرده‌سازی مسیر Path Compression Optimization Implementation

تئوری گراف + مسائل کاربردی گراف (BFS/DFS/کوتاه‌ترین مسیر/MST) Graphs Theory + Graph Practice Problems (BFS/DFS/Shortest Path Algorithm/MST)

  • گراف‌ها چه هستند What Are Graphs

  • گراف‌های جهت‌دار در مقابل بدون جهت Directed vs Undirected Graphs

  • گراف‌های وزن‌دار در مقابل بدون وزن Weighted vs Unweighted Graphs

  • اصطلاحات گراف - بخش ۱ Terms Of Graphs Part 1

  • انواع گراف - بخش ۱ Types Of Graphs Part 1

  • انواع گراف - بخش ۲ Types Of Graphs Part 2

  • پیاده‌سازی گراف - بخش ۱ Implementing Graphs Part 1

  • پیاده‌سازی گراف - بخش ۲ Implementing Graphs Part 2

  • پیاده‌سازی گراف - بخش ۳ Graph Implementation Part 3

  • دموی ماتریس مجاورت گراف Graph Adjacency Matrix Demonstration

  • دموی لیست مجاورت گراف Graph Adjacency List Demonstration

  • مقدمه‌ای بر پیمایش‌ها Introduction To Traversals

  • نحوه عملکرد BFS BFS Working

  • پیاده‌سازی BFS BFS Implementation

  • راهکار ویژگی پرتقال‌های فاسد Rotting Oranges Property Solution

  • ویژگی ۱ در BFS BFS Property 1

  • BFS روی گراف‌های وزن‌دار دودویی BFS Over Binary Weighted Graphs

  • مقدمه‌ای بر DFS Introduction to DFS

  • پیاده‌سازی تکرارشونده DFS DFS Iterative Implementation

  • پیاده‌سازی بازگشتی DFS DFS Recursive Implementation

  • ویژگی‌های مهم DFS DFS Important Properties

  • تشخیص چرخه - بخش ۱ Cycle Detection Part 1

  • تشخیص چرخه - بخش ۲ Cycle Detection Part 2

  • تشخیص چرخه - بخش ۳ Cycle Detection Part 3

  • پیاده‌سازی تشخیص چرخه Cycle Detection Implementation

  • مرتب‌سازی توپولوژیک چیست What Is Topological Sorting

  • مثال ۱ مرتب‌سازی توپولوژیک Topological Sorting Example 1

  • الگوریتم کوتاه‌ترین مسیر تک منبع Single Source Shortest Path Algorithm

  • الگوریتم دایکسترا (Dijkstra) Dijkstra's Algorithm

  • پیاده‌سازی الگوریتم دایکسترا Dijkstra's Algorithm Implementation

  • مقدمه‌ای بر الگوریتم بلمن-فورد Introduction To Bellman-Ford Algorithm

  • نحوه عملکرد الگوریتم بلمن-فورد Bellman-Ford Algorithm Working

  • پیاده‌سازی الگوریتم بلمن-فورد Bellman-Ford Algorithm Implementation

  • مقدمه‌ای بر درخت پوشای کمینه (MST) Introduction To Minimum Spanning Tree

  • الگوریتم پریم (Prim) Prim's Algorithm

  • پیاده‌سازی الگوریتم پریم Prim's Algorithm Implementation

  • مسئله کاربردی ۱: برنامه زمان‌بندی دروس Practice Problem 1 - Course Schedule

  • مسئله کاربردی ۲: تعداد جزایر Practice Problem 2 - Number of Islands

  • مسئله کاربردی ۳: یافتن قاضی شهر Practice Problem 3 - Find the Town Judge

  • مسئله کاربردی ۴: مناطق محاصره شده Practice Problem 4 - Surrounded Regions

  • مسئله کاربردی ۵: تعداد محاصره‌ها Practice Problem 5 - Number of Enclaves

  • مسئله کاربردی ۶: پر کردن سیل‌آسا (Flood Fill) Practice Problem 6 - Flood Fill

  • مسئله کاربردی ۸: پرتقال‌های فاسد Practice Problem 8 - Rotting Oranges

  • مسئله کاربردی ۹: درخت معتبر گراف Practice Problem 9 - Graph Valid Tree

  • مسئله کاربردی ۱۰: تعداد مؤلفه‌های متصل در گراف بدون جهت Practice Problem 10 - Number Of Connected Components In An Undirected Graph

  • مسئله کاربردی ۱۱: آب اقیانوس آرام و اطلس Practice Problem 11 - Pacific Atlantic Water

  • مسئله کاربردی ۱۲: دیکشنری بیگانگان Practice Problem 12 - Alien Dictionary

  • مسئله کاربردی ۱۳: شبیه‌سازی گراف Practice Problem 13 - Clone Graph

الگوریتم‌های حریصانه (Greedy) Greedy Algorithms

  • مقدمه‌ای بر الگوریتم‌های حریصانه Introduction To Greedy Algorithms

  • مسئله کاربردی ۱: حداقل افزودنی برای معتبر کردن پرانتزها Practice Problem 1 - Minimum Add To Make Parentheses Valid

  • مسئله کاربردی ۲: بهترین زمان خرید و فروش سهام ۲ Practice Problem 2 - Best Time To Buy And Sell Stock II

  • مسئله کاربردی ۳: شکلات Practice Problem 3 - Candy

تئوری بازی‌ها Game Theory

  • مسئله کاربردی ۱: بازی نیم (Nim's Game) Practice Problem 1 - Nim's Game

الگوریتم‌های پیشرفته تطبیق رشته‌ها Advanced String Matching Algorithms

  • مقدمه‌ای بر تطبیق الگو (Pattern Matching) Introduction To Pattern Matching

  • تطبیق الگو با روش Brute Force Pattern Matching Brute Force

  • مقدمه‌ای بر الگوریتم KMP Introduction to KMP Algorithm

  • الگوریتم KMP نسخه ۱: فضای اضافی KMP Algorithm Version 1 - Extra Space

  • رویکرد Brute Force برای طولانی‌ترین پیشوند-پسوند Longest Prefix Suffix Brute Force Approach

  • پیاده‌سازی Brute Force طولانی‌ترین پیشوند-پسوند Longest Prefix Suffix Brute Force Implementation

  • رویکرد بهینه برای طولانی‌ترین پیشوند-پسوند Longest Prefix Suffix Optimized Approach

  • پیاده‌سازی رویکرد بهینه طولانی‌ترین پیشوند-پسوند Longest Prefix Suffix Optimized Approach Implementation

  • الگوریتم KMP: رویکرد بهینه نهایی KMP Algorithm - Final Optimized Approach

  • پیاده‌سازی رویکرد بهینه نهایی KMP KMP Algorithm - Final Optimized Approach Implementation

مسائل رشته‌ها String Problems

  • مسئله کاربردی ۱: طولانی‌ترین رشته پالیندروم Practice Problem 1 - Longest Palindromic String

ساختار داده پیشرفته: درخت‌های قطعه‌ای (Segment Trees) Advanced Data Structure - Segment Trees

  • مقدمه‌ای بر مسئله پرس‌وجوی مجموع محدوده (Range Sum Query) Introduction to Range Sum Query Problem

  • مقدمه‌ای بر درخت قطعه‌ای: ساخت یک درخت قطعه‌ای Introduction To Segment Tree - Building A Segment Tree

  • پاسخ به پرس‌وجوها با استفاده از درخت‌های قطعه‌ای Answering Queries Using Segment Trees

  • به‌روزرسانی مقادیر در درخت قطعه‌ای Segment Tree Updating Values

  • پیاده‌سازی تابع ساخت درخت قطعه‌ای Segment Tree Build Function Implementation

  • پیاده‌سازی تابع پرس‌وجوی درخت قطعه‌ای Segment Tree Query Function Implementation

  • پیاده‌سازی تابع به‌روزرسانی درخت قطعه‌ای Segment Tree Update Function Implementation

نمایش نظرات

آموزش ساختار داده‌ها و الگوریتم‌ها در جاوا + ۱۵۰ مسئله لیت‌کد [ویدئویی]
جزییات دوره
41h 46m
290
Packtpub Packtpub
(آخرین آپدیت)
از 5
ندارد
دارد
دارد
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Pratik Singhal Pratik Singhal

مهندس ارشد نرم افزار در آمازون